// 单行注释 ctrl + /
/**
 * js多行注释 
 */

/**
 * var声明变量特点：
 * 1.var声明的变量会进行变量提升 
 *   console.log(a);var a = 10; 
 *   解析为var a;console.log(a);a =10;
 * 2.var可以重复声明变量 
 *   var a = 10; var a = 20; console.log(a);//20
    * 3.不存在块级作用域
    * if(true){
        var a = 10;
    }
    console.log(a);//可以访问到 a的结果是10
 */


/**
 * let声明变量的特点：
 *  1.不会进行变量提升
 *     console.log(a);//报错 初始化之前不可以访问
       let a = 10;
    2.不可以重复声明变量
        let a = 10;
        let a = 20;//报错 
    3.存在块级作用域
            if(true){
                let a = 10;
            }
            console.log(a);
 */


/**
 * const声明变量特点：
 *  1.不会进行变量提升 
 *      console.log(a);
        const a = 10;//报错
    2.不可以重复声明变量
        const a = 10;
        const a = 20;
    3.存在块级作用域
        if(true){
            const a = 10;
        }
        console.log(a);
    4.const声明变量必须进行初始化
        const a = 10;
        const c;报错 必须赋值
    5.const一旦初始化不可以重新赋值 一般用于声明常量

    const a = 10;
    a = 20;
    console.log(a);//报错 
 */

